﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BorisTheBlade
{
	static class WrapperEnums
	{
		/// <summary>
		/// Перечисление, содержащее все возможные имена таблиц.
		/// </summary>
		public enum AllTables
		{
			/// <summary>
			/// Содержит текущую биржевую информацию о финансовых инструментах, относящихся к различным режимам торгов.
			/// </summary>
			atSECURITIES,
			/// <summary>
			/// Cодержит информацию о сводных фондовых индексах.
			/// </summary>
			atINDEXES,
			/// <summary>
			/// Содержит список поступающих новостей.
			/// </summary>
			atNEWS,
			/// <summary>
			/// Информация о собственных заявках.
			/// </summary>
			atORDERS,
			/// <summary>
			/// Содержит информацию о заявках с лучшими ценами (отдельно на покупку и на продажу) по данному финансовому инструменту.
			/// </summary>
			atORDERBOOK,
			/// <summary>
			/// Содержит информацию о позициях по деньгам.
			/// </summary>
			atPOSITIONS,
			/// <summary>
			/// Информация о собственных сделках на покупку/продажу.
			/// </summary>
			atSTOPORDERS,
			/// <summary>
			/// Информация о собственных сделках на покупку/продажу.
			/// </summary>
			atTRADES,
			/// <summary>
			/// Cодержит информацию о доступных торговых счетах клиента. Каждый торговый счет представлен в таблице одной строкой.
			/// </summary>
			atTRDACC,
			/// <summary>
			/// Содержит информацию о совокупных позициях по ценным бумагам на всех торговых счетах клиента.
			/// </summary>
			atFIRM_HOLDING_TOTAL,
			/// <summary>
			/// Содержит информацию по историческим минутным данным (с периодом 1, 5, 10, 15, 20, 30, 60 и 1440 минут).
			/// </summary>
			atHISTORY,
			/// <summary>
			/// Содержат информацию по историческим дневным данным по всем сделкам купли/продажи финансовых инструментов, совершенным в торговой системе.
			/// </summary>
			atHISTORY_DAILY,
			/// <summary>
			/// Содержит информацию о режимах торгов.
			/// </summary>
			atBOARDS,
			/// <summary>
			/// Время торговой системы (обновляется один раз в минуту).
			/// </summary>
			atTESYSTIME,
			/// <summary>
			/// Содержит общую информацию (без указания сторон по сделке).
			/// </summary>
			atALL_TRADES,
		}

		public static string AsString(AllTables x)
		{
			switch (x)
			{
				case AllTables.atSECURITIES: return "SECURITIES";
				case AllTables.atINDEXES: return "INDEXES";
				case AllTables.atNEWS: return "NEWS";
				case AllTables.atORDERS: return "ORDERS";
				case AllTables.atORDERBOOK: return "ORDERBOOK";
				case AllTables.atPOSITIONS: return "POSITIONS";
				case AllTables.atSTOPORDERS: return "STOPORDERS";
				case AllTables.atTRADES: return "TRADES";
				case AllTables.atTRDACC: return "TRDACC";
				case AllTables.atFIRM_HOLDING_TOTAL: return "FIRM_HOLDING_TOTAL";
				case AllTables.atHISTORY: return "HISTORY";
				case AllTables.atHISTORY_DAILY: return "HISTORY_DAILY";
				case AllTables.atBOARDS: return "BOARDS";
				case AllTables.atTESYSTIME: return "TESYSTIME";
				case AllTables.atALL_TRADES: return "ALL_TRADES";
				default: return "";
			}
		}
	}
}
